home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
math
/
nrpas13
/
ran2.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-04-29
|
762b
|
33 lines
FUNCTION ran2(VAR idum: integer): real;
(* Programs using RAN2 must declare the following variables
VAR
gliy: integer;
glir: ARRAY [1..97] OF integer;
in the main program. *)
CONST
m=714025;
ia=1366;
ic=150889;
rm=1.400512e-6; (* 1.0/m *)
VAR
j: integer;
BEGIN
IF (idum < 0) THEN BEGIN
idum := (ic-idum) MOD m;
FOR j := 1 TO 97 DO BEGIN
idum := (ia*idum+ic) MOD m;
glir[j] := idum
END;
idum := (ia*idum+ic) MOD m;
gliy := idum
END;
j := 1 + (97*gliy) DIV m;
IF ((j > 97) OR (j < 1)) THEN BEGIN
writeln('pause in routine RAN2'); readln
END;
gliy := glir[j];
ran2 := gliy*rm;
idum := (ia*idum+ic) MOD m;
glir[j] := idum
END;